package cn.yzgy.yzgyoa.ucenter.mapper;

import cn.yzgy.yzgyoa.ucenter.entity.SysPermission;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 权限表 Mapper 接口
 * </p>
 *
 * @author Yqsen
 * @since 2019-08-20
 */
public interface SysPermissionMapper extends BaseMapper<SysPermission> {
    /**
     * 根据用户UID获取用户的所有权限
     * @param uid UID
     * @return 用户权限列表
     */
    List<SysPermission> getPermissionsByUid(String uid);

    /**
     * 权限数据列表
     * @return 权限数据列表
     */
    @Select(" select p_id as pId,p_name as pName,p_parent as pParent from sys_permission ")
    List<SysPermission> getPermissionsList();

    /**
     * 权限数据列表
     * @param uid UID
     * @return 权限数据列表
     */
    List<Map<String,Object>> getList(@Param("uid") String uid);

    List<Map<String,Object>> getAllList();

    /**
     * 获取主键id
     * @param pVal 权限值
     * @return 主键id
     */
    @Select("select p_id from sys_permission where p_val ='${pVal}'")
    String getPid(@Param("pVal") String pVal);

    /**
     * 获取主键id
     * @param pName 权限名
     * @return 主键id
     */
    @Select("select p_id from sys_permission where p_name ='${pName}' limit 1")
    String getPidToPname(@Param("pName") String pName);

    /**
     * 获取权限
     * @param roleId 角色Id
     * @return 权限
     */
    List<SysPermission> getPerList(@Param("roleId") String roleId);
}
